grp-kb
Semantic search MCP server for an Acumatica knowledge base. Single index overone vault of markdown notes, embedded with the multilingualparaphrase-multilingual-MiniLM-L12-v2 — handles both English content andBahasa Malaysia content (e.g. GRP manuals) well, so a query in eitherlanguage can find the right doc in either language.
No Obsidian, no Smart Connections plugin, anywhere in this pipeline — theindex is built directly from plain .md files with sentence-transformers.
This package ships code only. It needs a real, pre-built vault + indexpair to do anything useful — either build your own (see below) or get oneshared from someone who already has it (just the .md vault + kb_index.npy/ kb_meta.json, no re-embedding needed on the receiving end).
Note on mixed-content corpora: if your vault has a small, distinctly-taggedsubset (e.g. guide: GRP-Manual in frontmatter) mixed into a much largergeneral corpus, that subset can get outranked by volume on any topic thatexists in both — unfiltered search may return zero of the small subset'sresults even in the top 15, regardless of query wording. Use guide_filterto force results from that subset when you know that's what you want; thesearch_kb tool description already tells a calling LLM when to do this.
Build an index
export KB_VAULT_DIR=/path/to/vault
export KB_MCP_INDEX_DIR=/path/to/index
python -m grp_kb.build_index
Optional env vars: KB_FILE_GLOB (default *.md) to scope which files getindexed, KB_EMBED_MODEL (default paraphrase-multilingual-MiniLM-L12-v2) touse a different sentence-transformers model.
Run the server
export KB_VAULT_DIR=/path/to/vault
export KB_INDEX_DIR=/path/to/index
grp-kb
Register with Claude Code
claude mcp add grp-kb -s user \
-e KB_VAULT_DIR=/path/to/vault \
-e KB_INDEX_DIR=/path/to/index \
-- grp-kb
Tools
search_kb(query, top_k=10, source_only=False, guide_filter="")— returns aJSON array of results (score, path, heading, title, breadcrumb, forms,guide, snippet).read_kb_file(path)— full markdown content by relative path (as returnedbysearch_kb).