CSV MCP服务器
一种模型上下文协议(MCP)服务器,为理解和操作CSV文件提供了简单的实用程序。该服务器使用Python包装的bash实用程序来高效地检查、分析和转换CSV文件,使LLM能够轻松理解CSV内容,并为ggplot等可视化工具准备数据。
特性
工具
csv_inspect_structure-全面了解CSV文件结构
- 具有推断数据类型的列名 - 行数和列数 - 文件开头的示例数据 - 缺失值计数
csv_get_column_info-对特定柱的深入分析
- 唯一值计数和频率 - 数字列的统计度量(最小值、最大值、平均值、中位数、标准偏差) - 数据类型检测
csv_get_unique_values-列出列中的唯一值
- 使用bash实用程序高效提取唯一值 - 适用于分类变量
csv_get_summary_statistics-数字列的统计摘要
- 所有或选定数字列的综合统计数据 - 计数、最小值、最大值、平均值、中位数、标准差
csv_filter_and_transform-创建经过过滤/转换的CSV文件
- 选择特定列 - 根据条件筛选行 - 按列值排序 - 输出到新文件以供下游处理(例如,通过R MCP的ggplot)
csv_preview_rows-预览特定行范围
- 查看文件中任何位置的数据 - 可用于抽查数据质量
安装
此服务器使用 uv 对于Python包管理:
cd csv_mcp
uv sync用法
运行服务器
默认情况下,服务器使用stdio传输:
uv run python server.py与Claude Desktop一起使用
添加到您的Claude Desktop MCP配置中:
{
"mcpServers": {
"csv": {
"command": "/path/to/.venv/bin/python",
"args": ["/absolute/path/to/csv_mcp/server.py"]
}
}
}工作流示例
- 检查CSV文件:
Use csv_inspect_structure with file_path="sales_data.csv"- 分析特定列:
Use csv_get_column_info with file_path="sales_data.csv" and column_name="region"- 创建用于可视化的筛选数据集:
Use csv_filter_and_transform with:
- file_path="sales_data.csv"
- output_path="us_sales.csv"
- filter_conditions=["region=US"]
- select_columns=["date", "revenue", "product"]- 传递给R/ggplot MCP进行可视化:
Now use the R MCP server with us_sales.csv to create visualizations设计理念
- 简单性: 使用标准bash实用程序(剪切、排序、uniq、sed、head、tail)提高效率
- 集中: 旨在帮助LLM理解CSV内容,而不是取代完整的数据分析工具
- 集成: 准备数据以移交给其他工具(特别是用于可视化的R/ggplot)
- Markdown输出: 所有响应都是人类和LLM可读的标记
需求
- Python 3.10+
- 标准Unix实用程序(在macOS和Linux上可用)
- MCP Python SDK
- Pydantic v2
安全
- 所有文件路径都经过验证和解析
- 仅读取文件(创建新文件的csv_filter_and_transform除外)
- 命令在超时的情况下安全执行
- 无任意命令执行
许可证
麻省理工学院
