parquet_mcp_server 是一个强大的 MCP(模型控制协议)服务器,它提供了用于执行网络搜索和查找相似内容的工具。该服务器专为 Claude Desktop 设计,能为需要网络搜索功能以及根据搜索查询查找类似内容的应用程序和项目提供支持。
parquet_mcp_server 是专为 Claude Desktop 设计的 MCP 服务器,可执行网络搜索并查找相似内容。下面将为您介绍如何安装、配置和使用该服务器。
要通过 Smithery 自动安装 Parquet MCP Server for 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 上
安装项目所需的 Python 包:
pip install -r requirements.txt
更新 config.py 文件,设置以下环境变量:
| 属性 | 详情 |
|---|---|
DB_HOST |
数据库主机地址(默认:localhost) |
DB_PORT |
数据库端口(默认:5432) |
DB_NAME |
数据库名称(默认:postgres) |
DB_USER |
数据库用户名(默认:postgres) |
DB_PASSWORD |
数据库密码 |
VECTOR_SIZE |
向量大小(默认:1024) |
运行以下 SQL 命令初始化 PostgreSQL 数据库:
CREATE EXTENSION IF NOT EXISTS pgvector;
使用 insert_data.py 脚本将搜索结果插入到数据库中:
python insert_data.py --metadata "{'source': 'example.com', 'timestamp': '2023-10-01'}" --text "这是一个示例文本。"
使用 search_data.py 脚本根据向量相似性搜索数据库中的内容:
python search_data.py --query_embedding "0.5, 0.3, ..., 0.2" --threshold 0.7
运行以下命令测试服务器:
uvicorn main:app --reload
访问 http://localhost:8000/docs 查看 API 文档。
要使用 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; -- 根据用户指定限制结果数量
END;
$$;
此函数允许您在 PostgreSQL 数据库中执行向量相似性搜索,返回满足指定相似性阈值的结果,并根据用户输入限制结果数量。结果按日期和相似性进行排序。
CREATE TABLE web_search (
id SERIAL PRIMARY KEY,
text TEXT,
metadata JSONB,
embedding VECTOR(1024),
-- 该字段会自动更新
date TIMESTAMP DEFAULT NOW()
);
此表结构用于存储网络搜索结果,包括文本内容、元数据和向量表示。