Semantic search MCP server for an Acumatica KB, single multilingual index, no Obsidian/Smart Connections required
Project description
grp-kb
Semantic search MCP server for an Acumatica knowledge base. Single index over
one vault of markdown notes, embedded with the multilingual
paraphrase-multilingual-MiniLM-L12-v2 — handles both English content and
Bahasa Malaysia content (e.g. GRP manuals) well, so a query in either
language can find the right doc in either language.
No Obsidian, no Smart Connections plugin, anywhere in this pipeline — the
index is built directly from plain .md files with sentence-transformers.
This package ships code only. It needs a real, pre-built vault + index
pair to do anything useful — either build your own (see below) or get one
shared 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-tagged
subset (e.g. guide: GRP-Manual in frontmatter) mixed into a much larger
general corpus, that subset can get outranked by volume on any topic that
exists in both — unfiltered search may return zero of the small subset's
results even in the top 15, regardless of query wording. Use guide_filter
to force results from that subset when you know that's what you want; the
search_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 get
indexed, KB_EMBED_MODEL (default paraphrase-multilingual-MiniLM-L12-v2) to
use 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 a JSON array of results (score, path, heading, title, breadcrumb, forms, guide, snippet).read_kb_file(path)— full markdown content by relative path (as returned bysearch_kb).
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file grp_kb-0.1.4.tar.gz.
File metadata
- Download URL: grp_kb-0.1.4.tar.gz
- Upload date:
- Size: 12.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6e55e3d7ebb5065717b5d344d092960a623e337a245c69ddc4ab4cb53473b74
|
|
| MD5 |
8a2ef98b4d3753e972593e84f4412e3e
|
|
| BLAKE2b-256 |
c88292aaf9c92ad8e9e65b028025f5b23926361d2ae6affbf87be37f1124137c
|
File details
Details for the file grp_kb-0.1.4-py3-none-any.whl.
File metadata
- Download URL: grp_kb-0.1.4-py3-none-any.whl
- Upload date:
- Size: 8.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
acef455a855540af312394e60f4af5f8798ac293161f5b894b9e101064c8805a
|
|
| MD5 |
50050534b9e0e2f34a4517a76a3ee862
|
|
| BLAKE2b-256 |
423393a502227f84df87f5249c0f111fe4fe7577e1f59aea4c8012964ecf38b1
|