Token导航 LogoToken导航TokenDH.com
Csv Query MCP logo
数据服务未说明官方级别未说明来源级核验

Csv Query MCP

MCP Server

一个用于加载、解析和分析CSV数据的自定义MCP服务器,支持从ZIP文件和目录中提取CSV数据,并提供结构化数据分析功能。

工具数

4

提示词数

0

GitHub Stars

0

资源数

0
数据分析Claude数据转换Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

devferncosta

提供方

devferncosta

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

CSV查询MCP服务器文档

概述

CSV查询MCP服务器是一个定制的模型上下文协议(MCP)服务器,旨在加载、解析和分析CSV数据文件。它使Claude Desktop能够处理来自zip文件和目录的CSV数据,提供结构化数据分析功能。

目录

特性

  • Zip文件支持:自动从zip存档中提取CSV文件
  • 智能CSV解析:将CSV数据转换为结构化JSON对象
  • 数据类型检测:自动转换数字、日期和布尔值
  • 标题标准化:清理并标准化列标题
  • 内存缓存:一次加载数据并允许多次查询
  • 错误处理:强大的错误报告和验证

建筑

MCP服务器由三个主要组件组成:

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   Claude        │    │   MCP Server    │    │   File System   │
│   Desktop       │◄──►│   (Node.js)     │◄──►│   CSV/Zip Files │
└─────────────────┘    └─────────────────┘    └─────────────────┘

数据流

  1. 负载:用户请求从zip或目录加载CSV文件
  2. 提取:提取Zip文件,识别CSV文件
  3. 解析:CSV文件被解析为结构化JSON对象
  4. 缓存:解析后的数据存储在内存中,以便快速访问
  5. 查询:Claude请求数据并直接分析

安装

先决条件

  • Node.js 18+
  • 克劳德桌面
  • TypeScript

设置步骤

  1. 创建项目目录
   mkdir csv-query-mcp
   cd csv-query-mcp
  1. 再进行
   npm install
  1. 生成项目
   npm run build
  1. 配置Claude桌面

编辑您的Claude Desktop配置文件:

- 视窗: %APPDATA%\Claude\claude_desktop_config.json - macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

   {
     "mcpServers": {
       "csv-query": {
         "command": "node",
         "args": ["/path/to/csv-query-mcp/build/index.js"]
       }
     }
   }
  1. 重新启动克劳德桌面

配置

package.json

{
  "name": "csv-query-mcp",
  "type": "module",
  "dependencies": {
    "@modelcontextprotocol/sdk": "^0.5.0",
    "papaparse": "^5.4.1",
    "lodash": "^4.17.21",
    "yauzl": "^2.10.0"
  }
}

配置要点:

  • "type": "module" 启用ES6模块语法
  • MCP SDK处理与Claude Desktop的通信
  • Papa Parse提供强大的CSV解析
  • Yauzl处理zip文件提取

可用工具

1. load_csv_files

目的:从zip存档或目录加载CSV文件

参数:

  • source (字符串,必填):包含CSV的zip文件或目录的路径

示例:

Load CSV files from C:/data/sales_data.zip

2. get_data

目的:检索解析的CSV数据供Claude分析

参数:

  • filename (字符串,必填):要检索的CSV文件的名称
  • sample_size (number,可选):限制返回的行数

示例:

Get data from sales.csv with sample size 100

3. list_loaded_data

目的:显示当前加载的CSV文件的信息

参数:无

示例:

List loaded data

4. preview_data

目的:显示CSV文件结构的快速预览

参数:

  • filename (字符串,必填):要预览的CSV文件的名称
  • rows (number,可选):要显示的行数(默认值:5)

示例:

Preview data from customers.csv showing 10 rows

编码结构

文件组织

csv-query-mcp/
├── src/
│   ├── index.ts          # Main MCP server and tool handlers
│   ├── csv-parser.ts     # CSV parsing logic with Papa Parse
│   └── zip-handler.ts    # Zip file extraction utilities
├── build/                # Compiled JavaScript (auto-generated)
├── package.json          # Dependencies and scripts
└── tsconfig.json         # TypeScript configuration

核心组件

1.主服务器(index.ts)

class CSVQueryMCPServer {
  private server: Server;                    // MCP server instance
  private csvParser: CSVParser;              // CSV parsing component
  private zipHandler: ZipHandler;            // Zip extraction component
  private loadedData: Map;    // In-memory data cache
}

主要职责:

  • 初始化MCP服务器并注册工具
  • 处理来自Claude Desktop的传入工具请求
  • CSV解析器和zip处理程序之间的协调
  • 管理内存中的数据缓存

2.CSV解析器(csv-parser.ts)

export class CSVParser {
  async parseCSV(filePath: string): Promise
}

主要特点:

  • 标题标准化:将标头转换为带下划线的小写
  • 数据类型检测:自动将字符串转换为数字、日期、布尔值
  • 数据清理:删除空字符串,处理数字中的逗号
  • 错误处理:继续处理时报告解析错误

Papa解析配置:

Papa.parse(fileContent, {
  header: true,           // Use first row as object keys
  skipEmptyLines: true,   // Ignore blank rows
  dynamicTyping: true,    // Auto-convert data types
  transformHeader: ...,   // Clean header names
  transform: ...          // Clean data values
});

3.拉链处理器(zip-handler.ts)

export class ZipHandler {
  async extractZip(zipPath: string, extractPath: string): Promise
}

主要特点:

  • 选择性萃取:仅从zip存档中提取CSV文件
  • 目录创建:自动创建提取目录
  • 文件路径管理:返回提取的CSV文件的完整路径
  • 错误处理:提供zip问题的详细错误消息

数据转换管道

  1. 原始CSV输入:
   City,Receipts,Revenue
   New York,100,5000
   Los Angeles,80,4200
  1. Papa解析处理:

- 标头已标准化: city, receipts, revenue - 转换的数字: "100"100 - 创建的结构:对象数组

  1. 最终JSON输出:
   [
     {"city": "New York", "receipts": 100, "revenue": 5000},
     {"city": "Los Angeles", "receipts": 80, "revenue": 4200}
   ]
  1. 克劳德分析:接收结构化数据以进行直接分析

使用示例

基本工作流程

  1. 加载数据:
   Load CSV files from C:/data/Q1_sales.zip

*服务器提取zip,解析CSV,缓存数据*

  1. 探索结构:
   List loaded data

*显示:sales.cv:1247行,8列\[日期、客户、产品、金额、城市…\]*

  1. 预览数据:
   Preview data from sales.csv

*显示具有列结构的前5行*

  1. 提出问题:
   What city generated the most revenue?

*Claude自动使用get_data工具进行分析*

高级分析示例

销售分析:

- Which month had the highest sales?
- What's the average order value by region?
- Show me the top 10 customers by total purchases
- Are there any seasonal trends in the data?

数据质量检查:

- Are there any duplicate customer IDs?
- What percentage of orders have missing data?
- Which products have unusual pricing?

比较分析:

- How does Q1 compare to Q4 performance?
- Which sales rep has the best conversion rate?
- What's the geographic distribution of our customers?

故障排除

常见问题

1.“引用错误:未定义需求”

原因:混合CommonJS和ES模块语法 解决方案:确保所有导入都使用ES6语法:

// ✅ Correct
import { createWriteStream } from 'fs';

// ❌ Incorrect  
const fs = require('fs');

2.“服务器意外断开连接”

原因:服务器代码中的运行时错误 解决方案:

  1. 手动测试服务器: node build/index.js
  2. 检查控制台以了解错误详细信息
  3. 验证文件路径是否正确

3.“当前未加载CSV文件”

原因:加载操作失败或路径不正确 解决方案:

  1. 验证文件路径是否存在
  2. 检查文件权限
  3. 确保zip包含CSV文件

4.“解析CSV文件失败”

原因:CSV格式错误或编码问题 解决方案:

  1. 检查CSV文件格式
  2. 验证文件编码(应为UTF-8)
  3. 查找特殊字符或损坏的数据

调试步骤

  1. 检查MCP服务器状态:
   node build/index.js
   # Should show: "CSV Query MCP server running on stdio"
  1. 验证配置:

- 检查 claude_desktop_config.json 语法 - 确保文件路径使用正斜杠或转义反斜杠 - 配置更改后重新启动Claude Desktop

  1. 使用简单数据进行测试:

创建一个简单的测试CSV:

   name,age,city
   John,25,NYC
   Jane,30,LA
  1. 检查克劳德桌面日志:

- Help → 开发者工具→ 控制台 - 查找与MCP相关的错误消息

性能注意事项

  • 大文件:使用 sample_size 初步勘探参数
  • 内存使用:服务器将所有数据保存在内存中-需要时重新启动
  • 文件大小限制:没有硬限制,但非常大的文件可能会导致速度减慢

高级功能

自定义数据转换

CSV解析器包括几个内置的转换:

  • 日期检测:识别常见的日期格式(YYYY-MM-DD、MM/DD/YYYY)
  • 数字解析:处理带逗号的数字(1000→1000)
  • 布尔识别:将“true”/“false”字符串转换为布尔值
  • 空处理:空字符串变为空值

错误恢复

服务器包括全面的错误处理:

  • 部分加载成功:如果某些CSV失败,其他CSV仍会加载
  • 故障弱化:服务器在出错后继续运行
  • 详细错误消息:清楚地描述出了什么问题

未来的增强功能

未来版本的潜在改进:

  • 数据库集成:将解析后的数据存储在SQLite中以实现持久化
  • Google Drive集成:直接访问Google Drive文件
  • 数据验证:模式验证和数据质量检查
  • 导出功能:将分析结果保存到文件
  • 流媒体支持:使用流媒体处理非常大的文件

贡献

要修改或扩展服务器,请执行以下操作:

  1. 发展模式:
   npm run dev  # Watches for changes and rebuilds
  1. 添加新工具:扩展 setupToolHandlers() 方法
  1. 自定义分析器:修改 csv-parser.ts 对于特定的数据格式
  1. 其他文件类型:扩展 zip-handler.ts 其他档案

许可证

此MCP服务器按原样提供,用于教育和开发目的。

目录标签

目录标签

数据分析Claude数据转换CSV解析本地部署文件处理内存缓存

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

4

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP