parquet mcp server
The Parquet MCP Server is a tool for web searches and similarity comparisons that allows you to:
Perform web searches and scrape results based on provided queries
Extract relevant information from previous search results
Handle multiple search queries simultaneously with pagination support
Utilize PostgreSQL functionality for vector similarity searches
Integrate with Claude Desktop for AI-powered workflows
Extend functionality through smithery for automatic installation or manual configuration
Converts Parquet files to DuckDB databases for efficient querying and analysis
Uses environment variables for configuration of embedding services, database connections, and model selection
Stores embedding vectors as NumPy arrays in the Parquet file output
Uses Ollama models to generate text embeddings from Parquet file columns
Converts Parquet files to PostgreSQL tables with pgvector support for vector similarity search
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@parquet mcp serversearch for 'latest macbook pro reviews' and scrape page 1 results"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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:
Web Search: Perform a web search and scrape results
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 claudeClone this repository
git clone ...
cd parquet_mcp_serverCreate and activate virtual environment
uv venv
.venv\Scripts\activate # On Windows
source .venv/bin/activate # On macOS/LinuxInstall 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_keyRelated MCP server: my-mcp-server
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:
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)
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:
For Web Search:
"Please perform a web search for 'macbook' and 'laptop' and scrape the results from page 1"For Extracting Info from Search:
"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.pyOr 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.pyYou 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
If you get SSL verification errors, make sure the SSL settings in your
.envfile are correctIf 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
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
If PostgreSQL conversion fails, check:
The PostgreSQL connection settings in your
.envfile are correctThe PostgreSQL server is running and accessible
You have the necessary permissions to create/modify tables
The pgvector extension is installed in your database
PostgreSQL Function for Vector Similarity Search
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()
);Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceA 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 updated625MIT
- Flicense-qualityDmaintenanceA Model Context Protocol server that allows integration with Claude Desktop by creating and managing custom tools that can be executed through the MCP framework.Last updated46
- FlicenseAquality-maintenanceA 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.Last updated2
- AlicenseAquality-maintenanceAn 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.Last updated6
Related MCP Connectors
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
GibsonAI MCP server: manage your databases with natural language
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/parquet_mcp_server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server