🚀 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()
);
此表用於存儲網絡搜索的結果,包括段落文本、元數據和向量表示。