Skip to main content
Glama
DeepSpringAI

parquet mcp server

by DeepSpringAI

parquet_mcp_server

대장간 배지

웹 검색을 수행하고 유사한 콘텐츠를 찾는 도구를 제공하는 강력한 MCP(모델 제어 프로토콜) 서버입니다. 이 서버는 Claude Desktop과 함께 작동하도록 설계되었으며 두 가지 주요 기능을 제공합니다.

  1. 웹 검색 : 웹 검색을 수행하고 결과를 스크래핑합니다.

  2. 유사 검색 : 이전 검색에서 관련 정보 추출

이 서버는 특히 다음과 같은 경우에 유용합니다.

  • 웹 검색 기능이 필요한 애플리케이션

  • 검색 쿼리를 기반으로 유사한 콘텐츠를 찾아야 하는 프로젝트

설치

Smithery를 통해 설치

Smithery를 통해 Claude Desktop용 Parquet MCP 서버를 자동으로 설치하려면:

지엑스피1

이 저장소를 복제하세요

git clone ...
cd parquet_mcp_server

가상 환경 생성 및 활성화

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

패키지를 설치하세요

uv pip install -e .

환경

다음 변수를 사용하여 .env 파일을 만듭니다.

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: MCP Web Research Server

Claude Desktop과 함께 사용

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

사용 가능한 도구

서버는 두 가지 주요 도구를 제공합니다.

  1. 웹 검색 : 웹 검색을 수행하고 결과를 스크래핑합니다.

    • 필수 매개변수:

      • queries : 검색어 목록

    • 선택 매개변수:

      • page_number : 검색 결과의 페이지 번호(기본값은 1)

  2. 검색에서 정보 추출 : 이전 검색에서 관련 정보 추출

    • 필수 매개변수:

      • queries : 병합할 검색어 목록

예시 프롬프트

에이전트와 함께 사용할 수 있는 몇 가지 프롬프트 예시는 다음과 같습니다.

웹 검색의 경우:

"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'"

MCP 서버 테스트

이 프로젝트에는 src/tests 디렉터리에 포괄적인 테스트 모음이 포함되어 있습니다. 다음을 사용하여 모든 테스트를 실행할 수 있습니다.

python src/tests/run_tests.py

또는 개별 테스트를 실행합니다.

# Test Web Search
python src/tests/test_search_web.py

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

클라이언트를 직접 사용하여 서버를 테스트할 수도 있습니다.

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

문제 해결

  1. SSL 검증 오류가 발생하는 경우 .env 파일의 SSL 설정이 올바른지 확인하세요.

  2. 임베딩이 생성되지 않으면 다음을 확인하세요.

    • Ollama 서버가 실행 중이며 접근 가능합니다.

    • 지정된 모델은 Ollama 서버에서 사용 가능합니다.

    • 텍스트 열은 입력 Parquet 파일에 있습니다.

  3. DuckDB 변환이 실패하면 다음을 확인하세요.

    • 입력 Parquet 파일이 존재하며 읽을 수 있습니다.

    • 출력 디렉토리에 쓰기 권한이 있습니다.

    • Parquet 파일이 손상되지 않았습니다.

  4. PostgreSQL 변환이 실패하면 다음을 확인하세요.

    • .env 파일의 PostgreSQL 연결 설정이 올바릅니다.

    • PostgreSQL 서버가 실행 중이고 접근 가능합니다.

    • 테이블을 생성/수정하는 데 필요한 권한이 있습니다.

    • pgvector 확장 프로그램이 데이터베이스에 설치되었습니다.

벡터 유사성 검색을 위한 PostgreSQL 함수

PostgreSQL에서 벡터 유사성 검색을 수행하려면 다음 함수를 사용할 수 있습니다.

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

이 함수를 사용하면 PostgreSQL 데이터베이스에 저장된 벡터 임베딩에 대한 유사도 검색을 수행하여 지정된 유사도 임계값을 충족하는 결과를 반환하고 사용자 입력에 따라 결과 개수를 제한할 수 있습니다. 결과는 날짜 및 유사도 순으로 정렬됩니다.

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()
);
Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

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/parquet_mcp_server'

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