Parquet_mcp_server

Parquet_mcp_server

🚀 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  # Windows
source .venv/bin/activate  # macOS/Linux

安装依赖

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,  -- 使用日期列代替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,  -- 按日期降序排序( newest 先)
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()
);

此表用于存储网络搜索的结果,包括段落文本、元数据和向量表示。

  • 0 关注
  • 0 收藏,8 浏览
  • system 提出于 2025-09-23 00:33

相似服务问题