🚀 Parquet MCP 服务器
Parquet MCP 服务器是一个功能强大的 MCP(模型控制协议)服务器,提供用于执行网络搜索和查找相似内容的工具。该服务器专为 Claude Desktop 设计,可助力应用程序实现网络搜索功能,还能根据搜索查询找到类似内容。
🚀 快速开始
安装
通过 Smithery 安装
可自动通过 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
source .venv/bin/activate
安装依赖
pip install -r requirements.txt
使用说明
环境变量
创建一个包含以下内容的 .env
文件:
DB_HOST=your_database_host
DB_PORT=your_database_port
DB_NAME=your_database_name
DB_USER=your_database_user
DB_PASSWORD=your_database_password
OPENAI_API_KEY=your_openai_api_key
配置
创建一个包含以下内容的 config.json
文件:
{
"vector_db": {
"type": "postgres",
"params": {
"host": "${DB_HOST}",
"port": "${DB_PORT}",
"database": "${DB_NAME}",
"user": "${DB_USER}",
"password": "${DB_PASSWORD}"
}
},
"openai": {
"api_key": "${OPENAI_API_KEY}"
}
}
启动服务器
uvicorn server.main:app --reload
✨ 主要特性
- 网络搜索:执行网络搜索并抓取结果。
- 相似性搜索:从之前搜索中提取相关信息。
💻 使用示例
基础用法
此服务器提供了多个实用工具,可执行不同操作:
parquet_mcp web_search
:对网页内容进行分析和存储。
parquet_mcp vector_search
:根据向量相似度进行搜索。
parquet_mcp config
:管理配置文件。
parquet_mcp db
:管理 PostgreSQL 数据库。
📚 详细文档
测试
安装测试依赖
pip install -r requirements-test.txt
运行测试
pytest tests/
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,
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 数据库中执行向量相似度搜索,返回满足指定相似度阈值的结果,并根据用户输入限制结果数量。结果按日期和相似度排序。
Postgres 表创建
CREATE TABLE web_search (
id SERIAL PRIMARY KEY,
text TEXT,
metadata JSONB,
embedding VECTOR(1024),
date TIMESTAMP DEFAULT NOW()
);
此表用于存储网络搜索的结果,包括段落文本、元数据和向量表示。