一个强大的 MCP(模型控制协议)服务器,提供执行网络搜索和查找相似内容的工具。该服务器设计用于与 Claude Desktop 配合使用,并提供两个主要功能:
此服务器尤其适用于:
要通过 Smithery自动安装 Parquet MCP 服务器以用于 Claude Desktop:
npx -y @smithery/cli install @DeepSpringAI/parquet_mcp_server --client claude
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=http://sample-url.com/api/embed # 嵌入服务 URL
OLLAMA_URL=http://sample-url.com/ # Ollama 服务器 URL
EMBEDDING_MODEL=sample-model # 用于生成嵌入的模型
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

将以下内容添加到您的 Claude 桌面版配置文件 (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"
]
}
}
}

服务器提供两个主要工具:
搜索网页: 执行网页搜索并抓取结果
queries: 搜索查询列表page_number: 搜索结果的页码(默认为 1)从搜索结果中提取信息: 从之前的搜索结果中提取相关信息
queries: 要合并的搜索查询列表以下是一些您可以与代理一起使用的示例提示:
"请搜索网页 'macbook' 和 'laptop' 并抓取第 1 页的结果"
"请从之前的 'macbook' 搜索结果中提取相关信息"
该项目在 src/tests 目录中包含一套全面的测试套件。您可以使用以下命令运行所有测试:
python src/tests/run_tests.py
或者运行单个测试:
# 测试网页搜索
python src/tests/test_search_web.py
# 测试从搜索结果中提取信息
python src/tests/test_extract_info_from_search.py

您也可以直接使用客户端测试服务器:
from parquet_mcp_server.client import (
perform_search_and_scrape, # 新的网页搜索函数
find_similar_chunks # 新的信息提取函数
)
# 执行网页搜索
perform_search_and_scrape(["macbook", "laptop"], page_number=1)
# 从搜索结果中提取信息
find_similar_chunks(["macbook"])

.env文件中的SSL设置正确。.env文件中的PostgreSQL连接设置是否正确。为了在PostgreSQL中执行向量相似性搜索,你可以使用以下函数:
-- 创建向量相似性搜索函数
CREATE OR REPLACE FUNCTION match_web_search(
query_embedding vector(1024), -- 调整后的向量大小
match_threshold float,
match_count int -- 用户定义的结果数量限制
)
RETURNS TABLE (
id bigint,
metadata jsonb,
text TEXT, -- 添加了文本列到结果中
date TIMESTAMP, -- 使用date列代替created_at
similarity float
)
LANGUAGE plpgsql
AS $
BEGIN
RETURN QUERY
SELECT
web_search.id,
web_search.metadata,
web_search.text, -- 返回段落的完整文本
web_search.date, -- 返回日期时间戳
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, -- 按日期降序排序(最新的排在最前面)
web_search.embedding <=> query_embedding -- 按相似度排序
LIMIT match_count; -- 将结果限制为用户指定的match_count
END;
$;

此函数允许您对存储在PostgreSQL数据库中的向量嵌入进行相似性搜索,返回满足指定相似性阈值的结果,并根据用户输入限制结果数量。结果按日期和相似性排序。
CREATE TABLE web_search (
id SERIAL PRIMARY KEY,
text TEXT,
metadata JSONB,
embedding VECTOR(1024),
-- 此字段将自动更新
date TIMESTAMP DEFAULT NOW()
);
