Skip to main content
Glama
DeepSpringAI

parquet mcp server

by DeepSpringAI

parquet_mcp_server

铁匠徽章

一个强大的 MCP(模型控制协议)服务器,提供执行网页搜索和查找类似内容的工具。该服务器旨在与 Claude Desktop 配合使用,并提供两项主要功能:

  1. 网络搜索:执行网络搜索并抓取结果

  2. 相似性搜索:从之前的搜索中提取相关信息

该服务器特别适用于:

  • 需要 Web 搜索功能的应用程序

  • 需要根据搜索查询查找类似内容的项目

安装

通过 Smithery 安装

要通过Smithery自动为 Claude Desktop 安装 Parquet MCP 服务器:

npx -y @smithery/cli install @DeepSpringAI/parquet_mcp_server --client claude

克隆此存储库

git clone ...
cd parquet_mcp_server

创建并激活虚拟环境

uv venv
.venv\Scripts\activate  # On Windows
source .venv/bin/activate  # On macOS/Linux

安装包

uv pip install -e .

环境

使用以下变量创建.env文件:

EMBEDDING_URL=http://sample-url.com/api/embed  # URL for the embedding service
OLLAMA_URL=http://sample-url.com/  # URL for Ollama server
EMBEDDING_MODEL=sample-model  # Model to use for generating embeddings
SEARCHAPI_API_KEY=your_searchapi_api_key
FIRECRAWL_API_KEY=your_firecrawl_api_key
VOYAGE_API_KEY=your_voyage_api_key
AZURE_OPENAI_ENDPOINT=http://sample-url.com/azure_openai
AZURE_OPENAI_API_KEY=your_azure_openai_api_key

Related MCP server: MCP Web Research Server

与 Claude Desktop 一起使用

将其添加到您的 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"
      ]
    }
  }
}

可用工具

该服务器提供两个主要工具:

  1. 搜索网页:执行网页搜索并抓取结果

    • 必需参数:

      • queries :搜索查询列表

    • 可选参数:

      • page_number :搜索结果的页码(默认为 1)

  2. 从搜索中提取信息:从以前的搜索中提取相关信息

    • 必需参数:

      • queries :要合并的搜索查询列表

示例提示

以下是您可以与代理一起使用的一些示例提示:

对于网页搜索:

"Please perform a web search for 'macbook' and 'laptop' and scrape the results from page 1"

从搜索中提取信息:

"Please extract relevant information from the previous searches for 'macbook'"

测试 MCP 服务器

该项目在src/tests目录中包含一个全面的测试套件。您可以使用以下命令运行所有测试:

python src/tests/run_tests.py

或者运行单独的测试:

# Test Web Search
python src/tests/test_search_web.py

# Test Extract Info from Search
python src/tests/test_extract_info_from_search.py

您还可以直接使用客户端测试服务器:

from parquet_mcp_server.client import (
    perform_search_and_scrape,  # New web search function
    find_similar_chunks  # New extract info function
)

# Perform a web search
perform_search_and_scrape(["macbook", "laptop"], page_number=1)

# Extract information from the search results
find_similar_chunks(["macbook"])

故障排除

  1. 如果出现 SSL 验证错误,请确保.env文件中的 SSL 设置正确

  2. 如果未生成嵌入,请检查:

    • Ollama 服务器正在运行并可访问

    • 您的 Ollama 服务器上有指定的模型

    • 文本列存在于输入的 Parquet 文件中

  3. 如果 DuckDB 转换失败,请检查:

    • 输入 Parquet 文件存在且可读

    • 您对输出目录有写入权限

    • Parquet 文件未损坏

  4. 如果 PostgreSQL 转换失败,请检查:

    • .env文件中的 PostgreSQL 连接设置正确

    • PostgreSQL 服务器正在运行并可访问

    • 您具有创建/修改表所需的权限

    • pgvector 扩展已安装在您的数据库中

用于向量相似性搜索的 PostgreSQL 函数

要在 PostgreSQL 中执行向量相似性搜索,可以使用以下函数:

-- Create the function for vector similarity search
CREATE OR REPLACE FUNCTION match_web_search(
  query_embedding vector(1024),  -- Adjusted vector size
  match_threshold float,
  match_count int  -- User-defined limit for number of results
)
RETURNS TABLE (
  id bigint,
  metadata jsonb,
  text TEXT,  -- Added text column to the result
  date TIMESTAMP,  -- Using the date column instead of created_at
  similarity float
)
LANGUAGE plpgsql
AS $$
BEGIN
  RETURN QUERY
  SELECT
    web_search.id,
    web_search.metadata,
    web_search.text,  -- Returning the full text of the chunk
    web_search.date,  -- Returning the date timestamp
    1 - (web_search.embedding <=> query_embedding) as similarity
  FROM web_search
  WHERE 1 - (web_search.embedding <=> query_embedding) > match_threshold
  ORDER BY web_search.date DESC,  -- Sort by date in descending order (newest first)
           web_search.embedding <=> query_embedding  -- Sort by similarity
  LIMIT match_count;  -- Limit the results to the match_count specified by the user
END;
$$;

此函数允许您对存储在 PostgreSQL 数据库中的向量嵌入执行相似性搜索,返回满足指定相似度阈值的结果,并根据用户输入限制结果数量。结果按日期和相似度排序。

Postgres 表创建

CREATE TABLE web_search (
    id SERIAL PRIMARY KEY,
    text TEXT,
    metadata JSONB,
    embedding VECTOR(1024),

    -- This will be auto-updated
    date TIMESTAMP DEFAULT NOW()
);
Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DeepSpringAI/parquet_mcp_server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server