Knowledge Rag

data-ai MCP Server

Drop docs, search instantly from Claude Code — 12 MCP tools, 20 format parsers, hybrid search + reranking. Zero servers, zero API keys, 100% local.

data-aidata-ai
3 views96 stars17 forksMIT

Why This Matters

Discovered via unknown and last synced 3mo ago.

Source
unknown
Stars
96
Last synced
3mo ago
Install
Check source

Install

Install instructions not detected yet

Check the source repository for the latest setup steps.

View source instructions
54
Tools
0
Resources
0
Prompts
Standard I/O
Transport

Available Tools (54)

Format

Extension

TSX

JSON

max_results

int

5

Results returned when no limit specified

title

string

Markdown

`.md`

CSV

`.csv`

XML

`.xml`

C

H

full_rebuild

bool

0

0

Yes

Root element and namespace extraction

JS

JSX<br/>TS

query

string

Field

Default

Python

`.py`

get

add

No

NOFILTER end subgraph HYBRID["Hybrid Search"] direction LR SEMANTIC["Semantic Search<br/>(ChromaDB embeddings)<br/>Conceptual similarity"] BM25["BM25 Search<br/>(expanded query)<br/>Exact term matching"] end subgraph FUSION["Result Fusion + Reranking"] RRF["Reciprocal Rank Fusion<br/>score = alpha * 1/(k+rank_sem)<br/>+ (1-alpha) * 1/(k+rank_bm25)"] RERANK["Cross-Encoder Reranker<br/>Re-scores top 3x candidates<br/>query+doc pair scoring"] SORT["Sort by Reranker Score<br/>Normalize to 0-1"] RRF --> RERANK --> SORT end CATEGORY --> HYBRID NOFILTER --> HYBRID SEMANTIC --> RRF BM25 --> RRF SORT --> RESULTS["Results<br/>search_method: hybrid

url

string

Keywords

Expansions

PDF

TXT

JavaScript

`.js`

XLSX

PPTX

category

string

delete_file

bool

test_cases

string (JSON)

1000

Max characters per chunk

20

Hard cap even if client requests more

Default

Notes

force

bool

true

Enable cross-encoder reranking

Word

`.docx`

PowerPoint

`.pptx`

TypeScript

`.ts`

list

stats

filepath

string

8

200+

384

Vector dimensions (must match model)

Balanced

General queries

JSON

XML

similar

evaluate"] end subgraph SEARCH["HYBRID SEARCH ENGINE"] direction LR ROUTER["Keyword Router<br/>(word boundaries)"] SEMANTIC["Semantic Search<br/>(ChromaDB)"] BM25["BM25 Keyword<br/>(rank-bm25 + expansion)"] RRF["Reciprocal Rank<br/>Fusion (RRF)"] RERANK["Cross-Encoder<br/>Reranker"] ROUTER --> SEMANTIC ROUTER --> BM25 SEMANTIC --> RRF BM25 --> RRF RRF --> RERANK end subgraph STORAGE["STORAGE LAYER"] direction LR CHROMA[("ChromaDB<br/>Vector Database")] COLLECTIONS["Collections<br/>security

Parameter

Type

9

100+

false

Enable CUDA GPU acceleration. Requires `pip install knowledge-rag[gpu]`

Semantic-heavy

Conceptual queries, related topics

Excel

`.xlsx`

Feature

Description

MQH

MQ4"] CHUNKER["Chunking<br/>MD: section-aware<br/>Other: 1000 chars + 200 overlap"] PARSERS --> CHUNKER end CLAUDE["Claude Code"] --> MCP MCP --> SEARCH SEARCH --> STORAGE STORAGE --> EMBED INGEST --> EMBED EMBED --> STORAGE ``` ### Query Processing Flow ```mermaid flowchart TB QUERY["User Query<br/>'mimikatz credential dump'"] --> EXPAND subgraph EXPANSION["Query Expansion"] EXPAND["Synonym Expansion<br/>mimikatz -> mimikatz, sekurlsa, logonpasswords"] end EXPAND --> ROUTER subgraph ROUTING["Keyword Routing"] ROUTER["Keyword Router"] MATCH{"Word Boundary<br/>Match?"} CATEGORY["Filter: redteam"] NOFILTER["No Filter"] ROUTER --> MATCH MATCH -->

hybrid_alpha

Behavior

content

string

Preset

File

200

Characters shared between consecutive chunks

knowledge_base

ChromaDB collection — change for separate KBs

3

Fetch N*multiplier candidates for reranking