Skip to main content
Glama
KimTsegzc

xinPlugin_Chroma_fastMCP

by KimTsegzc

xinPlugin_Chroma_fastMCP

Capa de búsqueda vectorial para la base de conocimiento de MinIO: extrae el texto de los documentos subidos a MinIO (PDF/txt/md) → lo divide en fragmentos → lo indexa como vectores en Chroma, y mediante FastMCP expone la «búsqueda» como una herramienta MCP, para que dsh-mcp-client de DSH consulte el documento original directamente durante el QA.

Composición

Archivo

Función

chroma_store.py

Persistencia de Chroma + fragmentación (con número de página/número de línea) + búsqueda híbrida (semántica + BM25 de bigramas de caracteres, fusión RRF)

ingest.py

CLI de ingesta: python ingest.py <archivo> [nombre_fuente], genera un resumen JSON (para invocación coordinada con el plugin de MinIO)

server.py

Servicio FastMCP por stdio, expone search / ingest_file / list_sources

requirements.txt

chromadb / fastmcp / pypdf

Related MCP server: Modular RAG MCP Server

Instalación

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

Uso

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

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

Herramientas MCP

  • search(query, top_k=6): búsqueda híbrida de recuperación semántica y de palabras clave, devuelve fragmentos del texto original junto con su procedencia (archivo, página y número de línea).

  • ingest_file(path, source_name): guarda su final en el sistema.

  • list_sources(): seguridad de las fuentes en el índice de entrada.

En el extremo de DSH se conecta a server.py mediante stdio (dsh-mcp-client); el nombre de la herramienta es mcp__chroma__search.

Principio de búsqueda

  • Fragmentación: extrae el texto por páginas, filtra encabezados/pie de página/números de página, cada 6 líneas forma un fragmento (superpuesto en 1 línea), y los metadatos registran source/page/line_start/line_end.

  • Búsqueda híbrida: vector semántico de Chroma (coseno) + búsqueda dispersa BM25 con bigramas de caracteres; se fusiona mediante RRF — cuando el embedding semántico chino es débil, BM25 garantiza las coincidencias precisas de términos como «modelos grandes / recursos de cálculo / datos» y haceque la localización de la fuente sea estable.

  • Una nueva ingesta invalida el índice disperso de caché; volver a ingestar un documento lo sobrescribe y actualiza.

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