parquet mcp server

Integrations

  • Uses environment variables for configuration of embedding services, database connections, and model selection

  • Converts Parquet files to DuckDB databases for efficient querying and analysis

  • Stores embedding vectors as NumPy arrays in the Parquet file output

parquet_mcp_server

A powerful MCP (Model Control Protocol) server that provides tools for performing web searches and finding similar content. This server is designed to work with Claude Desktop and offers two main functionalities:

  1. Web Search: Perform a web search and scrape results
  2. Similarity Search: Extract relevant information from previous searches

This server is particularly useful for:

  • Applications requiring web search capabilities
  • Projects needing to find similar content based on search queries

Installation

Installing via Smithery

To install Parquet MCP Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @DeepSpringAI/parquet_mcp_server --client claude

Clone this repository

git clone ... cd parquet_mcp_server

Create and activate virtual environment

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

Install the package

uv pip install -e .

Environment

Create a .env file with the following 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

Usage with Claude Desktop

Add this to your Claude Desktop configuration file (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" ] } } }

Available Tools

The server provides two main tools:

  1. Search Web: Perform a web search and scrape results
    • Required parameters:
      • queries: List of search queries
    • Optional parameters:
      • page_number: Page number for the search results (defaults to 1)
  2. Extract Info from Search: Extract relevant information from previous searches
    • Required parameters:
      • queries: List of search queries to merge

Example Prompts

Here are some example prompts you can use with the agent:

"Please perform a web search for 'macbook' and 'laptop' and scrape the results from page 1"
"Please extract relevant information from the previous searches for 'macbook'"

Testing the MCP Server

The project includes a comprehensive test suite in the src/tests directory. You can run all tests using:

python src/tests/run_tests.py

Or run individual tests:

# Test Web Search python src/tests/test_search_web.py # Test Extract Info from Search python src/tests/test_extract_info_from_search.py

You can also test the server using the client directly:

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"])

Troubleshooting

  1. If you get SSL verification errors, make sure the SSL settings in your .env file are correct
  2. If embeddings are not generated, check:
    • The Ollama server is running and accessible
    • The model specified is available on your Ollama server
    • The text column exists in your input Parquet file
  3. If DuckDB conversion fails, check:
    • The input Parquet file exists and is readable
    • You have write permissions in the output directory
    • The Parquet file is not corrupted
  4. If PostgreSQL conversion fails, check:
    • The PostgreSQL connection settings in your .env file are correct
    • The PostgreSQL server is running and accessible
    • You have the necessary permissions to create/modify tables
    • The pgvector extension is installed in your database

To perform vector similarity searches in PostgreSQL, you can use the following function:

-- 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; $$;

This function allows you to perform similarity searches on vector embeddings stored in a PostgreSQL database, returning results that meet a specified similarity threshold and limiting the number of results based on user input. The results are sorted by date and similarity.

Postgres table creation

CREATE TABLE web_search ( id SERIAL PRIMARY KEY, text TEXT, metadata JSONB, embedding VECTOR(1024), -- This will be auto-updated date TIMESTAMP DEFAULT NOW() );

You must be authenticated.

A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

local-only server

The server can only run on the client's local machine because it depends on local resources.

A powerful MCP (Model Control Protocol) server that provides tools for manipulating and analyzing Parquet files. This server is designed to work with Claude Desktop and offers four main functionalities:

  1. Installation
    1. Installing via Smithery
    2. Clone this repository
    3. Create and activate virtual environment
    4. Install the package
    5. Environment
  2. Usage with Claude Desktop
    1. Available Tools
      1. Example Prompts
        1. For Web Search:
        2. For Extracting Info from Search:
      2. Testing the MCP Server
        1. Troubleshooting
      3. PostgreSQL Function for Vector Similarity Search
        1. Postgres table creation

          Related MCP Servers

          • -
            security
            F
            license
            -
            quality
            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.
            Last updated -
            48
            4
            TypeScript
            • Apple
          • A
            security
            A
            license
            A
            quality
            A Model Context Protocol (MCP) server that provides tools for reading Excel (xlsx) files, enabling extraction of data from entire workbooks or specific sheets with results returned in structured JSON format.
            Last updated -
            3
            2
            Python
            Apache 2.0
            • Linux
            • Apple
          • A
            security
            A
            license
            A
            quality
            An MCP server that provides a comprehensive interface to Semgrep, enabling users to scan code for security vulnerabilities, create custom rules, and analyze scan results through the Model Context Protocol.
            Last updated -
            6
            140
            Python
            MIT License
            • Linux
            • Apple
          • -
            security
            F
            license
            -
            quality
            A Model Context Protocol server that provides tools for interacting with databases, including PostgreSQL, DuckDB, and Google Cloud Storage Parquet files.
            Last updated -
            2
            TypeScript
            • Linux
            • Apple

          View all related MCP servers

          ID: tkclhe2kox