LabscoMCP early access ↗
berrydev-aiMCP SERVER

BerryRAG

A local vector database for scraped documentation — add, search and get Claude-formatted context, all on your machine.

by berrydev-ai ↗Vector Stores & RAG RetrievalCommunity

LABSCO SUMMARY

The fallback embedding provider is a trap worth knowing about.

Three providers chain automatically, and the last one is hash-based — it will happily produce vectors without sentence-transformers installed, and the search results will be poor in a way that looks like a data problem rather than a setup problem. Check get_stats after your first ingest. Everything else about the design is sensible: local SQLite, vectors on disk, and quality filters that keep navigation chrome out of the index.

What it is

A self-hosted RAG system that pairs a local vector store with Playwright-based web scraping. Pages get scraped into a folder, processed into embeddings, and stored in SQLite with the vectors on disk as NumPy arrays. The MCP server then lets a client add, search and retrieve from that store without anything leaving the machine — unless you opt into OpenAI embeddings.

What you get

  • add_document puts content straight into the vector store
  • search_documents finds similar content; get_context returns it already formatted for a query
  • list_documents and get_stats for what is in there and how it is doing
  • process_scraped_files ingests what Playwright saved; save_scraped_content stashes content for later processing
  • A second server in the same repository — BerryExa — adds crawl_content for extraction with subpage support, extract_links for subpage discovery, and get_content_preview for a quick look before committing to a full crawl
  • Three embedding providers with automatic fallback: sentence-transformers locally, OpenAI if you set a key, and a hash-based last resort the README itself advises against for production
  • Quality filters that drop content under 100 characters, navigation-only pages, duplicates and files over 500KB
  • Chunking at 500 characters with 50 characters of overlap and sentence-boundary detection

Requirements

No account required for the default path. Clone, run npm run install-deps and npm run setup, then build it with npm run build and point your client at node with dist/vector_db_server.js and the repository as the working directory. Package berry-rag, version 1.0.0. Set OPENAI_API_KEY only if you want OpenAI embeddings instead of local ones. The first run downloads the sentence-transformers model, roughly 90MB. Scraping is done by the Playwright MCP server, configured alongside this one.

Setup effort

Build from source — git clone https://github.com/berrydev-ai/berry-rag.git