🚀 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
✨ 主要特性
- 网络搜索:执行网络搜索并抓取结果。
- 相似性搜索:从之前搜索中提取相关信息。
📦 安装指南
安装过程可参考上述快速开始中的安装步骤,包含通过 Smithery 安装、克隆仓库、创建并激活虚拟环境以及安装依赖等操作。
💻 使用示例
基础用法
使用可用工具进行不同操作,示例如下:
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()
);
此表用于存储网络搜索的结果,包括段落文本、元数据和向量表示。