parquet_mcp_server

parquet_mcp_server

**摘要:** parquet_mcp_server 是一个用于从 Parquet 文件生成文本嵌入的 Python 服务器,支持 NLP 任务和 ML 工作流,并与 Claude Desktop 集成。

安装

# 克隆仓库
git clone ...
cd parquet_mcp_server

# 创建并激活虚拟环境
uv venv
.venv\Scripts\activate  # Windows
source .venv/bin/activate  # macOS/Linux

# 安装包
uv pip install -e .

环境配置

创建一个包含以下内容的 .env 文件:

EMBEDDING_URL=https://your-ollama-server/v1/embeddings
OLLAMA_URL=https://your-ollama-server

使用方法

1. 与 Claude Desktop 集成

将以下内容添加到 claude_desktop_config.json 文件中:

{
  "mcpServers": {
    "parquet-mcp-server": {
      "command": "uv",
      "args": [
        "--directory",
        "/home/${USER}/workspace/parquet_mcp_server/src/parquet_mcp_server",
        "run",
        "main.py"
      ]
    }
  }
}

2. 使用测试客户端

# 创建样本 Parquet 文件
import pandas as pd
df = pd.DataFrame({'text': ['这是一个测试', '另一个测试句子']})
df.to_parquet('sample.parquet')

# 运行测试客户端
python src/test_mcp_embedding.py '{
    "input_path": "sample.parquet",
    "output_path": "output.parquet",
    "column_name": "text",
    "embedding_column": "embeddings"
}'

# 验证输出
df = pd.read_parquet('output.parquet')
print('列:', df.columns.tolist())
print('嵌入大小:', len(df['embeddings'].iloc[0]))

3. 使用代理接口

python src/parquet_mcp_server/client.py

示例提示:

  • "请将 'input.parquet' 文件中的 'text' 列嵌入,并将输出保存到 'output.parquet'"
  • "为 'data.parquet' 文件中的 'description' 列生成嵌入,并将其作为 'vectors' 保存到 'result.parquet'"

故障排除

  • SSL 验证错误:在 .env 文件中添加:

    PYTHONWARNINGS=ignore:Unverified HTTPS request
    REQUESTS_CA_BUNDLE=""
    CURL_CA_BUNDLE=""
    SSL_CERT_VERIFY=false
    
  • 无嵌入生成:确认 Ollama 服务器正在运行、指定模型可用、输入文件格式正确

输出格式

嵌入作为 NumPy 数组保存在 Parquet 文件的指定列中,保留原始文本数据。