servidor parquet_mcp
Un potente servidor MCP (Protocolo de Control de Modelos) que proporciona herramientas para realizar búsquedas web y encontrar contenido similar. Este servidor está diseñado para funcionar con Claude Desktop y ofrece dos funcionalidades principales:
Búsqueda web : realice una búsqueda web y extraiga resultados
Búsqueda de similitud : extrae información relevante de búsquedas anteriores
Este servidor es particularmente útil para:
Aplicaciones que requieren capacidades de búsqueda web
Proyectos que necesitan encontrar contenido similar según consultas de búsqueda
Instalación
Instalación mediante herrería
Para instalar Parquet MCP Server para Claude Desktop automáticamente a través de Smithery :
npx -y @smithery/cli install @DeepSpringAI/parquet_mcp_server --client claudeClonar este repositorio
git clone ...
cd parquet_mcp_serverCrear y activar entorno virtual
uv venv
.venv\Scripts\activate # On Windows
source .venv/bin/activate # On macOS/LinuxInstalar el paquete
uv pip install -e .Ambiente
Crea un archivo .env con las siguientes variables:
EMBEDDING_URL=http://sample-url.com/api/embed # URL for the embedding service
OLLAMA_URL=http://sample-url.com/ # URL for Ollama server
EMBEDDING_MODEL=sample-model # Model to use for generating embeddings
SEARCHAPI_API_KEY=your_searchapi_api_key
FIRECRAWL_API_KEY=your_firecrawl_api_key
VOYAGE_API_KEY=your_voyage_api_key
AZURE_OPENAI_ENDPOINT=http://sample-url.com/azure_openai
AZURE_OPENAI_API_KEY=your_azure_openai_api_keyRelated MCP server: MCP Log Reader
Uso con Claude Desktop
Agregue esto a su archivo de configuración de Claude Desktop ( claude_desktop_config.json ):
{
"mcpServers": {
"parquet-mcp-server": {
"command": "uv",
"args": [
"--directory",
"/home/${USER}/workspace/parquet_mcp_server/src/parquet_mcp_server",
"run",
"main.py"
]
}
}
}Herramientas disponibles
El servidor proporciona dos herramientas principales:
Buscar en la Web : Realizar una búsqueda web y extraer resultados
Parámetros requeridos:
queries: Lista de consultas de búsqueda
Parámetros opcionales:
page_number: Número de página para los resultados de la búsqueda (predeterminado en 1)
Extraer información de la búsqueda : extrae información relevante de búsquedas anteriores
Parámetros requeridos:
queries: Lista de consultas de búsqueda para fusionar
Ejemplos de indicaciones
A continuación se muestran algunos ejemplos de indicaciones que puede utilizar con el agente:
Para búsqueda web:
"Please perform a web search for 'macbook' and 'laptop' and scrape the results from page 1"Para extraer información de la búsqueda:
"Please extract relevant information from the previous searches for 'macbook'"Prueba del servidor MCP
El proyecto incluye un conjunto completo de pruebas en el directorio src/tests . Puede ejecutar todas las pruebas usando:
python src/tests/run_tests.pyO ejecutar pruebas individuales:
# Test Web Search
python src/tests/test_search_web.py
# Test Extract Info from Search
python src/tests/test_extract_info_from_search.pyTambién puedes probar el servidor utilizando el cliente directamente:
from parquet_mcp_server.client import (
perform_search_and_scrape, # New web search function
find_similar_chunks # New extract info function
)
# Perform a web search
perform_search_and_scrape(["macbook", "laptop"], page_number=1)
# Extract information from the search results
find_similar_chunks(["macbook"])Solución de problemas
Si recibe errores de verificación de SSL, asegúrese de que la configuración de SSL en su archivo
.envsea correctaSi no se generan incrustaciones, verifique:
El servidor Ollama está funcionando y es accesible
El modelo especificado está disponible en su servidor Ollama
La columna de texto existe en su archivo de entrada Parquet
Si falla la conversión de DuckDB, verifique:
El archivo Parquet de entrada existe y es legible
Tiene permisos de escritura en el directorio de salida
El archivo Parquet no está dañado
Si falla la conversión de PostgreSQL, verifique:
La configuración de conexión de PostgreSQL en su archivo
.enves correctaEl servidor PostgreSQL está en ejecución y es accesible
Tienes los permisos necesarios para crear/modificar tablas
La extensión pgvector está instalada en su base de datos
Función PostgreSQL para búsqueda de similitud vectorial
Para realizar búsquedas de similitud vectorial en PostgreSQL, puede utilizar la siguiente función:
-- Create the function for vector similarity search
CREATE OR REPLACE FUNCTION match_web_search(
query_embedding vector(1024), -- Adjusted vector size
match_threshold float,
match_count int -- User-defined limit for number of results
)
RETURNS TABLE (
id bigint,
metadata jsonb,
text TEXT, -- Added text column to the result
date TIMESTAMP, -- Using the date column instead of created_at
similarity float
)
LANGUAGE plpgsql
AS $$
BEGIN
RETURN QUERY
SELECT
web_search.id,
web_search.metadata,
web_search.text, -- Returning the full text of the chunk
web_search.date, -- Returning the date timestamp
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, -- Sort by date in descending order (newest first)
web_search.embedding <=> query_embedding -- Sort by similarity
LIMIT match_count; -- Limit the results to the match_count specified by the user
END;
$$;Esta función permite realizar búsquedas de similitud en incrustaciones vectoriales almacenadas en una base de datos PostgreSQL. Devuelve resultados que cumplen un umbral de similitud especificado y limita el número de resultados según la información proporcionada por el usuario. Los resultados se ordenan por fecha y similitud.
Creación de tablas de Postgres
CREATE TABLE web_search (
id SERIAL PRIMARY KEY,
text TEXT,
metadata JSONB,
embedding VECTOR(1024),
-- This will be auto-updated
date TIMESTAMP DEFAULT NOW()
);