内容
# 数据文件分析的基本MCP服务器
提供用于分析和处理CSV和Parquet文件工具的模型上下文协议(MCP)服务器。
## 功能特点
- **CSV文件分析**:通过报告行数和列数来汇总CSV文件
- **Parquet文件分析**:通过报告行数和列数来汇总Parquet文件
- **示例数据**:包含CSV和Parquet格式的示例用户数据
## 项目结构
```
mix_server/
│
├── data/ # 示例CSV和Parquet文件
│ ├── sample.csv
│ └── sample.parquet
│
├── tools/ # MCP工具定义
│ ├── __init__.py
│ ├── csv_tools.py
│ └── parquet_tools.py
│
├── utils/ # 可重用的文件读取逻辑
│ ├── __init__.py
│ └── file_reader.py
│
├── server.py # MCP服务器实例
├── main.py # MCP服务器的入口点
├── generate_parquet.py # 将CSV转换为Parquet的脚本
└── README.md # 本文件
```
## 安装
1. **安装uv** (如果尚未安装):
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```
2. **创建并激活虚拟环境**:
```bash
uv venv
source .venv/bin/activate
```
3. **安装依赖项**:
```bash
uv add "mcp[cli]" pandas pyarrow
```
## 使用
### 运行服务器
启动MCP服务器:
```bash
uv run main.py
```
### 与LM Studio一起使用
要将此MCP服务器与LM Studio一起使用,请编辑您的`mcp.json`文件并添加:
这将为您启动MCP服务器。
```json
{
"mcpServers": {
"mix_server": {
"command": "uv",
"args": [
"--directory",
"/path/to/your/mcp_server_public",
"run",
"main.py"
]
}
}
}
```
**注意**:将`/path/to/your/mcp_server_public`替换为实际的`mcp_server_public`目录路径。
加载后,您应该会看到本地LLM可使用的所有可用工具。
### 可用工具
1. **summarize_csv_file(filename: str)**
- 通过报告CSV文件的行数和列数来汇总CSV文件
- 示例:`summarize_csv_file("sample.csv")`
2. **summarize_parquet_file(filename: str)**
- 通过报告Parquet文件的行数和列数来汇总Parquet文件
- 示例:`summarize_parquet_file("sample.parquet")`
### 示例数据
服务器包含具有以下结构的示例用户数据:
- **id**:唯一标识符
- **name**:用户的全名
- **email**:用户的电子邮件地址
- **signup_date**:用户注册的日期
## 开发
### 添加新工具
1. 在`tools/`目录中创建一个新文件
2. 导入MCP服务器实例:`from server import mcp`
3. 使用`@mcp.tool()`装饰器定义工具函数
4. 在`main.py`中导入新工具模块
### 添加新文件格式
1. 在`utils/file_reader.py`中添加实用函数
2. 在`tools/`目录中创建相应的工具
3. 在`main.py`中导入新工具
## 依赖项
- **mcp[cli]**:官方MCP SDK和命令行工具
- **pandas**:用于读取CSV和Parquet文件
- **pyarrow**:通过Pandas添加对读取Parquet文件的支持
## 许可证
本项目是开源的,基于MIT许可证可用。