Skip to main content
Glama
DeepSpringAI

parquet mcp server

by DeepSpringAI

servidor parquet_mcp

insignia de herrería

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:

  1. Búsqueda web : realice una búsqueda web y extraiga resultados

  2. 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 claude

Clonar este repositorio

git clone ...
cd parquet_mcp_server

Crear y activar entorno virtual

uv venv
.venv\Scripts\activate  # On Windows
source .venv/bin/activate  # On macOS/Linux

Instalar 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_key

Related MCP server: my-mcp-server

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:

  1. 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)

  2. 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.py

O 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.py

Tambié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

  1. Si recibe errores de verificación de SSL, asegúrese de que la configuración de SSL en su archivo .env sea correcta

  2. Si 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

  3. 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

  4. Si falla la conversión de PostgreSQL, verifique:

    • La configuración de conexión de PostgreSQL en su archivo .env es correcta

    • El 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()
);

Available Tools

2 tools
search-webC

Perform a web search and scrape results

ParametersJSON Schema
NameRequiredDescriptionDefault
queriesYesList of search queries
page_numberNoPage number for the search results

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It states that results are scraped but provides no details on output format, pagination behavior, rate limits, or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no extraneous information, making it efficiently front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema or annotations, the description is insufficient for a web search tool. It does not explain return values, result structure, or how scraping integrates with search, leaving significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters. The description adds no additional meaning beyond the parameter descriptions, meeting the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: perform a web search and scrape results. It uses a specific verb-resource pair, but does not explicitly differentiate from the sibling tool 'extract-info-from-search'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus the sibling tool 'extract-info-from-search' or in what contexts it is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 2 tool updatesv1.0.0
    • First observedextract-info-from-search
    • First observedsearch-web

TDQS

C2.5/5.0
Disambiguation4/5

The two tools have clearly distinct purposes: one for performing web searches and scraping results, the other for extracting information from those prior searches. While they are related, there is no functional overlap.

Naming Consistency5/5

Both tool names follow a consistent snake_case verb_noun pattern. 'search-web' and 'extract-info-from-search' both clearly indicate action and target.

Tool Count3/5

With only 2 tools, the server feels minimal for a web search and extraction domain. However, the tools cover a basic two-step workflow, making the count borderline acceptable.

Completeness3/5

The server provides a basic search and extraction cycle but lacks obvious features like managing search history, caching, or supporting different output formats. Minor gaps exist.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server built with mcp-framework that allows users to create and manage custom tools for processing data, integrating with the Claude Desktop via CLI.
    23
    5
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that allows integration with Claude Desktop by creating and managing custom tools that can be executed through the MCP framework.
    88
    -
  • F
    license
    A
    quality
    Not graded
    maintenance
    A tutorial implementation MCP server that enables analysis of CSV and Parquet files. Allows users to summarize data and query file information through natural language interactions.
    2
    -
  • A
    license
    A
    quality
    Not graded
    maintenance
    An MCP server that enables AI assistants to load, query, and analyze local CSV files using tools for filtering, aggregation, and grouping. It provides capabilities to describe schemas, calculate statistics, and sample data directly from CSV files.
    6
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DeepSpringAI/search_mcp_server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server