Skip to main content
Glama
KimTsegzc

xinPlugin_Chroma_fastMCP

by KimTsegzc

xinPlugin_Chroma_FastMCP

Векторный слой поиска для базы знаний MinIO: извлекает текст из загруженных в MinIO документов (PDF/txt/md), разбивает его на фрагменты, загружает векторы в Chroma и через FastMCP предоставляет «поиск» как MCP-инструмент для подключения dsh-mcp-client из DSH (DeepSeek Harness), чтобы агент мог напрямую искать исходные тексты при ответах на вопросы.

Состав

Файл

Назначение

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 подключение к server.py идёт через stdio (dsh-mcp-client), имена инструментов выглядят как mcp__chroma__search.

Принцип поиска

  • Разбиение: текст извлекается постранично, отфильтровываются шумы — колонтитулы, нижние колонтитулы, номера страниц; каждая часть — по 6 строк (перекрытие 1 строка), в метаданных хранятся source/page/line_start/line_end.

  • Гибридный поиск: семантические векторы Chroma (косинусная близость) + разрежённый поиск BM25 по символьным биграммам, RRF-слияние — когда китайские семантические эмбеддинги слабые, 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.
    -