Skip to main content
Glama
KimTsegzc

xinPlugin_Chroma_fastMCP

by KimTsegzc

xinPlugin_Chroma_fastMCP

MinIO 지식 베이스의 벡터 검색 계층: MinIO에 업로드된 문서(PDF/txt/md)의 텍스트를 추출 → 분할 → 벡터 저장(Chroma)하고, FastMCP를 통해 '검색'을 MCP 도구로 노출하여 DSH(DeepSeek Harness)의 dsh-mcp-client가 연결하고, agent가 질문에 답할 때 원문을 직접 검색할 수 있게 합니다.

구성

파일

역할

chroma_store.py

Chroma 영속화 + 분할(페이지 번호/행 번호 포함) + 혼합 검색(의미 + 문자 바이그램 BM25, RRF 융합)

ingest.py

CLI 입고: python ingest.py <파일> [source명], JSON 요약 출력(MinIO 플러그인 연동 호출용)

server.py

FastMCP stdio 서비스, search / ingest_file / list_sources 노출

requirements.txt

chromadb / fastmcp / pypdf

Related MCP server: Modular RAG MCP Server

설치

pip install -r requirements.txt
# 首次检索会下载默认 embedding(all-MiniLM-L6-v2,约 80MB,缓存在 ~/.cache/chroma)

사용

# 入库
python ingest.py "广州十五五规划.pdf" "广州十五五规划.pdf"

# 检索(或经 MCP 工具 search)
python -c "from chroma_store import search; import json; print(json.dumps(search('广州 人工智能+ 大模型 算力 数据要素', 6), ensure_ascii=False))"

MCP 도구

  • search(query, top_k=6): 의미+키워드 혼합 검색, 원문 조각 및 출처(파일 + 페이지 번호 + 행 번호) 반환.

  • ingest_file(path, source_name): 로컬 파일 입고.

  • list_sources(): 입고된 소스 목록.

DSH 측은 stdio로 server.py에 연결(dsh-mcp-client), 도구 이름은 mcp__chroma__search 형태입니다.

검색 원리

  • 분할: 페이지별로 텍스트를 추출하고 헤더/푸터/페이지 번호 노이즈를 필터링하며, 6행마다 하나의 블록(1행 중복)으로 만들고 메타데이터에 source/page/line_start/line_end를 기록합니다.

  • 혼합 검색: Chroma 의미 벡터(코사인) + 문자 바이그램 BM25 희소 검색, RRF 융합 — 중국어 의미 embedding이 약한 경우, BM25가 '대형 모델/연산력/데이터 요소' 등의 정확한 키워드를 보완하여 출처 위치 확인이 안정적입니다.

  • 입고 시 희소 캐시가 즉시 무효화되며, 같은 파일을 다시 입고하면 덮어써서 업데이트합니다.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to search, deep-read, and build knowledge bases from Markdown, PDF, DOCX, and PPTX documents via MCP tools for retrieval, document navigation, and ingestion.
    21 npm
    645
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server that indexes a knowledge base into Chroma and provides search tools for retrieving document fragments via vector embeddings.
    -